#pragma once

#define black_chess_character "○"
#define white_chess_character "●"
#define empty_chess_character " "

#define left_of_top_border "┌"
#define mid_of_top_border "┬"
#define right_of_top_border "┐"

#define left_of_split_line "├"
#define mid_of_split_line "┼"
#define right_of_split_line "┤"

#define left_of_bottom_border "└"
#define mid_of_bottom_border "┴"
#define right_of_bottom_border "┘"

#define CORRECTION_FOR_CHESS_SIDE_TO_INDEX min_in_three(kCHESS_SIDE_BLACK, kCHESS_SIDE_WHITE, kCHESS_SIDE_EMPTY)
#define ChessSideToTableIndex(chess_side) ((chess_side) - CORRECTION_FOR_CHESS_SIDE_TO_INDEX)

extern const char *chess_character_table[3];

void ChessBoardDisplayHandler_DisplayChessBoard(ChessBoard *chess_board);